﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Web.Mvc;
using System.Web.Security;
using KL.Store.Core.Domain;

namespace KL.Store.Web.Models
{

    public class SalesModel : Sales
    {
        public SalesModel()
        {
            SalesList = new List<Sales>();
        }
        public IList<Sales> SalesList { get; set; }
        public IList<AmbarListesi> AmbarList { get; set; }
    }

    public class TotalStockModel : TotalStock
    {
        public TotalStockModel()
        {
            TotalStockList = new List<TotalStock>();
        }
        public IList<TotalStock> TotalStockList { get; set; }
        public decimal OrtalamaMaliyetToplam { get; set; }
        public decimal AlisFiyatiToplam { get; set; }
        public decimal SatisFiyatiToplam { get; set; }
        public decimal MiktarToplam { get; set; }
        public decimal StokToplamMaliyet { get; set; }
        public decimal StokMaliyeti { get; set; }
        public decimal ToplamStokAdedi { get; set; }
        public decimal ToplamSatisTutarTahmini { get; set; }
        public int PageCount { get; set; }
        public int Page { get; set; }
    }

    public class CriticalStockModel : CriticalStocks
    {
        public CriticalStockModel()
        {
            StockList = new List<CriticalStocks>();
        }
        public IList<CriticalStocks> StockList { get; set; }
        public int PageCount { get; set; }
        public int Page { get; set; }
        public IList<AmbarListesi> AmbarList { get; set; }
        public int SelectedAmbar { get; set; }
    }

    public class AmbarList : AmbarListesi
    {
        public AmbarList()
        {
            Liste = new List<AmbarListesi>();
        }
        public IList<AmbarListesi> Liste { get; set; }
    }

    public class FaturaPrint : FaturaSatir
    {
        public FaturaPrint()
        {
            FaturaAdresi = new Address();
            TeslimatAdresi = new Address();
            Paketler = new List<Product>();
            Satirlar = new List<FaturaSatir>();
        }
        public Address FaturaAdresi { get; set; }
        public Address TeslimatAdresi { get; set; }
        public IList<Product> Paketler { get; set; }
        public IList<FaturaSatir> Satirlar { get; set; }
    }
    public class FaturaPrintListe : FaturaPrint
    {
        public FaturaPrintListe()
        {
            Liste = new List<FaturaPrint>();
        }
        public IList<FaturaPrint> Liste { get; set; }
    }

    public class CCProcessModel : CCProcess
    {
        public CCProcessModel()
        {
            PaymentList = new List<CCProcess>();
        }
        public IList<CCProcess> PaymentList { get; set; }
        public int Page { get; set; }
        public int PageCount { get; set; }
        public int Sort { get; set; }
        public string Filter { get; set; }
        public DateTime StartDate { get; set; }
        public DateTime EndDate { get; set; }
    }

    public class SatisSiparisModel
    {
        public SatisSiparisModel()
        {
            SalesList = new List<SiparisSatis>();
            OdemeSekilleri = new List<OdemeSekli>();
            SiparisDurumlari = new List<SiparisDurum>();
            SiparisDurumGuncelle = new List<SiparisDurum>();
        }
        public IList<SiparisSatis> SalesList { get; set; }
        public IList<OdemeSekli> OdemeSekilleri { get; set; }
        public IList<SiparisDurum> SiparisDurumlari { get; set; }
        public IList<SiparisDurum> SiparisDurumGuncelle { get; set; }
        public int Page { get; set; }
        public int PageCount { get; set; }
        public int Sort { get; set; }
        public int Order { get; set; }
        public int WithCancelAndComplete { get; set; }
        public int SendMailWhenChangeStatus { get; set; }
        public string Filter { get; set; }
        public string CariAdi { get; set; }
        public int DurumId { get; set; }
        public string PageUrl { get; set; }
        public DateTime StartDate { get; set; }
        public DateTime EndDate { get; set; }
    }

    public class SatisSiparisDetayModel
    {
        public SatisSiparisDetayModel()
        {
            SatisDetay = new List<SiparisSatisDetay>();
            SiparisBilgi = new SiparisSatisBilgi();
            OdemeSekilleri = new List<OdemeSekli>();
            SiparisDurumlari = new List<SiparisDurum>();
            SiparisAdresler = new List<OrderAddress>();
            SiparisBilgiFatura = new SiparisSatis();
        }
        public IList<SiparisSatisDetay> SatisDetay { get; set; }
        public SiparisSatisBilgi SiparisBilgi { get; set; }
        public IList<OdemeSekli> OdemeSekilleri { get; set; }
        public IList<SiparisDurum> SiparisDurumlari { get; set; }
        public IList<OrderAddress> SiparisAdresler { get; set; }
        public SiparisSatis SiparisBilgiFatura { get; set; }
    }

    public class SenetCiktisiModel
    {
        public SenetCiktisiModel()
        {
            SatisDetay = new List<SiparisSatisDetay>();
            SiparisBilgi = new SiparisSatisBilgi();
        }
        public OrderCompletedVoucher VC { get; set; }
        public OrderUserInfo UI { get; set; }
        public IList<SiparisSatisDetay> SatisDetay { get; set; }
        public SiparisSatisBilgi SiparisBilgi { get; set; }
        public string TemplateStr { get; set; }
        public string ResultStr { get; set; }
    }

    public class StokGrupMenuModel
    {
        public StokGrupMenuModel()
        {
            MenuList = new List<CategoryMenuList>();
        }
        public IList<CategoryMenuList> MenuList { get; set; }
        public string MenuString { get; set; }
    }

    public class StokGrupDuzenleModel
    {
        public StokGrupDuzenleModel()
        {
            Category = new CategoryEdit();
            ExtraFields = new List<CategoryExtraFields>();
        }
        public CategoryEdit Category { get; set; }
        public IList<CategoryExtraFields> ExtraFields { get; set; }
        public string Message { get; set; }
        public bool AddNew { get; set; }
        public string Password { get; set; }
    }

    public class GroupMenuModel
    {
        public GroupMenuModel()
        {
            GroupList = new List<CategoryMenuList>();
            GroupListA = new List<CategoryMenuList>();
            GroupListM = new List<CategoryMenuList>();
            GroupListS = new List<CategoryMenuList>();
        }
        public IList<CategoryMenuList> GroupList { get; set; }
        public IList<CategoryMenuList> GroupListA { get; set; }
        public IList<CategoryMenuList> GroupListM { get; set; }
        public IList<CategoryMenuList> GroupListS { get; set; }
        public int SelectedGroup { get; set; }
        public string FreeCargo { get; set; }
        public string FastCargo { get; set; }
        public string NewProduct { get; set; }
        public string OpportunityProduct { get; set; }
        public string CampaignProduct { get; set; }
        public string ShowAsCampaignProduct { get; set; }
        public string GiftString { get; set; }
        public string SpecialText { get; set; }
        public string CheckStock { get; set; }
    }

    public class BannerMenuModel
    {
        public BannerMenuModel()
        {
            BannerList = new List<Banner>();
        }
        public IList<Banner> BannerList { get; set; }
        public int SelectedBanner { get; set; }
        public string Password { get; set; }
    }

    public class BannerDuzenleModel
    {
        public BannerDuzenleModel()
        {
            Banner = new Banner();
        }
        public Banner Banner { get; set; }
        public string Password { get; set; }
    }
}
